home *** CD-ROM | disk | FTP | other *** search
- public class JObMap {
- private JMapNode m_Head;
- private JMapNode m_Tail;
- private int m_nCount;
-
- public Position GetHeadPosition() {
- return new Position(this.m_Head);
- }
-
- public Object GetAt(Position var1) {
- return var1.element == null ? null : ((JMapNode)var1.element).data;
- }
-
- public Object GetTail() {
- return this.m_Tail == null ? null : this.m_Tail.data;
- }
-
- public void AddTail(JMxKey var1, Object var2) {
- JMapNode var3 = new JMapNode(var1, var2);
- if (this.m_Tail == null) {
- var3.next = var3.prev = null;
- this.m_Head = this.m_Tail = var3;
- } else {
- var3.prev = this.m_Tail;
- var3.next = null;
- this.m_Tail.next = var3;
- this.m_Tail = var3;
- }
-
- ++this.m_nCount;
- }
-
- public Object RemoveAt(Position var1) {
- JMapNode var2 = (JMapNode)var1.element;
- var1.element = null;
- if (var2 == null) {
- return null;
- } else {
- Object var3 = var2.data;
- this.RemoveNode(var2);
- return var3;
- }
- }
-
- public Object GetHead() {
- return this.m_Head == null ? null : this.m_Head.data;
- }
-
- public void AddHead(JMxKey var1, Object var2) {
- JMapNode var3 = new JMapNode(var1, var2);
- if (this.m_Head == null) {
- var3.next = var3.prev = null;
- this.m_Head = this.m_Tail = var3;
- } else {
- var3.prev = null;
- var3.next = this.m_Head;
- this.m_Head.prev = var3;
- this.m_Head = var3;
- }
-
- ++this.m_nCount;
- }
-
- public String toString() {
- String var1 = "List contains " + this.m_nCount + " items: \n";
-
- for(JMapNode var2 = this.m_Head; var2 != null; var2 = var2.next) {
- var1 = var1 + var2.toString();
- }
-
- return var1;
- }
-
- public Object Remove(JMxKey var1) {
- Position var2 = this.Find(var1);
- return var2.element == null ? null : this.RemoveAt(var2);
- }
-
- public Position FindNext(JMxKey var1, Position var2) {
- JMapNode var3 = null;
- if (var2 != null) {
- var3 = (JMapNode)var2.element;
- }
-
- if (var3 != null) {
- var3 = var3.next;
- }
-
- if (var3 == null) {
- var3 = this.m_Head;
- }
-
- while(var3 != null && var1.Compare(var3.key) != 0) {
- var3 = var3.next;
- }
-
- return var3 == null ? null : new Position(var3);
- }
-
- public Position FindNext(Object var1, Position var2) {
- JMapNode var3 = null;
- if (var2 != null) {
- var3 = (JMapNode)var2.element;
- }
-
- if (var3 == null) {
- var3 = this.m_Head;
- }
-
- while(var3 != null && !var1.equals(var3.data)) {
- var3 = var3.next;
- }
-
- return new Position(var3);
- }
-
- public Position GetTailPosition() {
- return new Position(this.m_Tail);
- }
-
- public Object FindData(JMxKey var1) {
- JMapNode var2;
- for(var2 = this.m_Head; var2 != null && var1.Compare(var2.key) != 0; var2 = var2.next) {
- }
-
- return var2 == null ? null : var2.data;
- }
-
- public Object RemoveHead() {
- if (this.m_Head == null) {
- return null;
- } else {
- Object var1 = this.m_Head.data;
- this.m_Head = this.m_Head.next;
- if (this.m_Head != null) {
- this.m_Head.prev = null;
- } else {
- this.m_Tail = null;
- }
-
- this.m_nCount += -1;
- return var1;
- }
- }
-
- public Position FindPrev(JMxKey var1, Position var2) {
- JMapNode var3 = null;
- if (var2 != null) {
- var3 = (JMapNode)var2.element;
- }
-
- if (var3 != null) {
- var3 = var3.prev;
- }
-
- if (var3 == null) {
- var3 = this.m_Tail;
- }
-
- while(var3 != null && var1.Compare(var3.key) != 0) {
- var3 = var3.prev;
- }
-
- return var3 == null ? null : new Position(var3);
- }
-
- public void RemoveAll() {
- while(this.m_nCount > 0) {
- this.RemoveHead();
- }
-
- this.m_nCount = 0;
- this.m_Head = this.m_Tail = null;
- }
-
- public void RemoveAll(JMxKey var1) {
- JMapNode var2 = this.m_Head;
-
- while(var2 != null) {
- if (var1.Compare(var2.key) == 0) {
- JMapNode var3 = var2;
- var2 = var2.next;
- this.RemoveNode(var3);
- } else {
- var2 = var2.next;
- }
- }
-
- }
-
- public boolean IsEmpty() {
- return this.m_nCount == 0;
- }
-
- public JMxKey GetNextKey(Position var1) {
- if (var1.element == null) {
- return null;
- } else {
- JMxKey var2 = ((JMapNode)var1.element).key;
- var1.element = ((JMapNode)var1.element).next;
- return var2;
- }
- }
-
- public Position Find(JMxKey var1) {
- JMapNode var2;
- for(var2 = this.m_Head; var2 != null && var1.Compare(var2.key) != 0; var2 = var2.next) {
- }
-
- return var2 == null ? null : new Position(var2);
- }
-
- public Position ReverseFind(JMxKey var1) {
- JMapNode var2;
- for(var2 = this.m_Tail; var2 != null && var1.Compare(var2.key) != 0; var2 = var2.prev) {
- }
-
- return var2 == null ? null : new Position(var2);
- }
-
- protected Object RemoveNode(JMapNode var1) {
- Object var2 = var1.data;
- this.m_nCount += -1;
- if (this.m_nCount == 0) {
- this.m_Head = this.m_Tail = null;
- } else if (var1 == this.m_Tail) {
- this.m_Tail = var1.prev;
- var1.prev.next = null;
- var1.prev = null;
- } else if (var1 == this.m_Head) {
- this.m_Head = var1.next;
- var1.next.prev = null;
- var1.next = null;
- } else {
- var1.prev.next = var1.next;
- var1.next.prev = var1.prev;
- var1.next = null;
- var1.prev = null;
- }
-
- return var2;
- }
-
- public Object GetPrev(Position var1) {
- if (var1.element == null) {
- return null;
- } else {
- Object var2 = ((JMapNode)var1.element).data;
- var1.element = ((JMapNode)var1.element).prev;
- return var2;
- }
- }
-
- public Object GetNext(Position var1) {
- if (var1.element == null) {
- return null;
- } else {
- Object var2 = ((JMapNode)var1.element).data;
- var1.element = ((JMapNode)var1.element).next;
- return var2;
- }
- }
- }
-